package com.qqtech.qquan.sys.service;

import java.util.List;

import com.qqtech.core.frame.service.BaseService;
import com.qqtech.qquan.sys.model.SysMenu;
import com.qqtech.qquan.sys.model.SysMenuQuery;
import com.qqtech.qquan.sys.model.SysMenuVo;

public interface SysMenuService extends BaseService<SysMenu> {
	public SysMenuVo getByMenuId(java.lang.String menuId);
	
	/**
	 * 根据上级id查询
	 * @param sysMenu
	 * @return
	 */
	public List<SysMenuVo> queryListByParentId(SysMenuQuery sysMenu);
	
	/**
	 * 移动菜单
	 * @param targetId 目标菜单id
	 * @param sourceId 源菜单id
	 * @param point 操作类型	取值范围: append,top,bottom
	 * @return 1成功
	 */
	public int move(String targetId, String sourceId, String point);
	
	/**
	 * 取最大的排序
	 * @return
	 */
	public Integer getMaxOrderIdx();
	
	/**
	 * 根据角色权限，查询父级菜单
	 * @param sysMenuDomain
	 * @return
	 */
	public List<SysMenuVo> topMenuForRole(SysMenuQuery sysMenuQuery);
	
	/**
	 * 根据角色权限，查询子级菜单
	 * @param sysMenuDomain
	 * @return
	 */
	public List<SysMenuVo> menuForRole(SysMenuQuery sysMenuQuery);
}